home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
SPACE 2
/
SPACE - Library 2 - Volume 1.iso
/
utility
/
406
/
utility2
/
readme.st
< prev
next >
Wrap
Text File
|
1989-08-18
|
9KB
|
175 lines
README for Zoo/ST binaries
==========================
Fortunately, Rahul Dhesi has lifted the tight copyright arrangements for the
ST version of Zoo. Just like the MS-DOS version, he allows distribution of
binaries WITHOUT sources. I'm strongly convinced this will help making Zoo
accepted as archiver number 1 in the ST world.
Because a lot of people will receive the Zoo package without the sources,
here you find the implementation notes for Zoo/ST. Additional information can
be found in README.ST2, supplied with the sources (which are the ultimate
documentation offcourse).
Please read the official Zoo documentation first (the file ZOO.MAN or ZOO.1).
The Zoo implementation for the ST is complete; all features are present,
except the following:
- using Zoo as a filter is not tested (and will probably not work).
- the MS-DOS specific Z-archive format is not supported. A Z-archive or
tiny archive seems to be an archive containing a single file; it didn't
seem worth the effort (and code size) to implement this.
ST-SPECIFIC FEATURES
Besides solving a couple of bugs in the original Zoo 2.01 sources, I added
the following features:
- Zoo/ST accepts both slashes and backslashes as directory separators in
all arguments, like:
zoo a test /src/atari.c \src\zoo.c \src/zoo.h
- added TMPDIR support during packing: the temporary file "Z.@@@" is
kept in the following directory:
1. if a dot was specified as modifier, in the current dir;
2. else, if the environment variable TMPDIR exists, in the directory
this variable points to (TMPDIR may contain a drive specifier);
3. else in the directory where the zoofile itself resides.
Note: the only time a temporary file is created is during packing, so
this is the only case where you could notice a speed increase when
TMPDIR points to a RAMdisk.
- added a little check to FIZ.TTP: it now prints HEADER when the archive
header is processed (before it always printed DIR and some garbage when
the header was processed).
- Zoo tries to be clever when deciding to wait for any key to return to
the desktop. The method used:
1. IF the environment variable ZOOPAUSE is set and equal to "no"
THEN don't wait for a key, return immediately;
2. ELSE IF the environment variable ZOOPAUSE == "yes"
THEN do wait for a keypress;
3. ELSE (the environment variable ZOOPAUSE is neither "yes" nor "no")
IF shell seems to be available
(i.e. if the system var _shell_p (0x4f6) is unequal to 0)
THEN do not wait for a key
ELSE do wait for a key.
This seems to be the most flexible way, offering both desktop and shell
users intuitive defaults and optional full control by manipulating
ZOOPAUSE.
- Zoo/ST was compiled with the GREAT Turbo C compiler, v1.0, from
Heimsoeth/Borland; it was linked with a propriatary library, which
yields much faster code than TC's stdio library. Unfortunately, this
library cannot be distributed to the Public Domain.
Zoo/ST can be linked with TC's library though, provided that the
patches described in README.ST2 are applied to the original library.
- Zoo/ST's startup code supports the extended parameter passing technique
called "xARGV", restricting the length of all arguments only by the
available memory. It's obvious that this feature only works when Zoo is
started from a shell which also supports this convention
(CRAFT/GPshell, gulam, msh).
- Zoo/ST has 1 new "expert" command modifier and 2 related new novice
command-line options:
/ modifier for "a" expert-level command.
When one (or more) of the file arguments represent a
directory, the contents of this directory are COMPLETELY
added (i.e. ALL subdirectories, subsubdirectories etc will
be added).
-backup novice command.
Same as -add, but when any directory is encountered in the
file arguments, this directory will be completely added
(including all subdirectories, subsubdirectories, etc).
All file names are stored completely (i.e. including the
full path).
Same as expert command "aP/".
-restore novice command.
Logical counterpart of the new -backup option. Will
extract files from a Zoo archive using directory
information (if present) and creating any (sub)directory
needed which does not exist.
Same as expert command "x//".
These new features will probably be added to versions of Zoo on other
machines as well.
BUGS
At the moment of distribution, 3 bugs are known:
1. the Lempel-Ziv compression method fails dramatically when Zoo is
feeded with a file containing 2-byte integers in ascending order (e.g.
from 0 to 6500). After quite a long time spent in the compression
routine, Zoo reports 0% compression though actually the file has
increased with around 30-50%!!!
This bug is also present in ARC/ST v5.21, because identical LZ
compression techniques are used.
Let's hope Rahul Dhesi can solve this bug.
2. During beta testing, a rare problem was encountered when TurboDos is
active and Zoo is used. When you want to archive a couple of files
(more than three, all residing on your harddisk or ramdisk) and the
target Zoo archive will be stored on floppy, Zoo aborts with 2 bombs.
Using a debugger it seems to be TurboDos' mistake: the bus error is
caused by an invalid A0 register used as base register in a TurboDos
512-byte internal copy loop.
The bug is reported to Atari (Benelux); as a fix could take quite some
time, and Zoo/ST is already late, I've decided to distribute Zoo/ST
anyway.
3. Because the desktop converts all arguments, passed to a TTP program, to
uppercase, expert-level commands (which are case-sensitive) will not
work properly in this environment. Fix: use novice commands only or
start Zoo from your favourite command-line or graphical shell;
especially the ZooBoy graphical shell for the Zoo program is highly
recommended!
Note: as the case-sensitiveness of the expert-level commands belongs to
the fundamentals of Zoo as written by Rahul Dhesi, it seems a bad
choice to change the expert-level command bindings. We really have to
blame Atari or DR, whoever introduced this "feature"!
Other bugs encountered by users can be reported to me (see below) or posted
to Usenet (comp.sources.bugs or comp.sys.atari.st). Please do report them!
DISTRIBUTION
Zoo/ST can be distributed in three different ways:
1. an archive (preferably a Zoo archive, but an ARC archive will reach
more people for a start) containing the following files:
ARCVSZOO.TXT (discussion of ARC vs Zoo)
COPYRIGH.T (Official Zoo copyright)
FIZ.TTP (FIx Zoo files, a dedicated utility)
FIZ.MAN (FIZ documentation)
README.ST (this file)
WHATS.NEW (latest features/changes in current ST version)
ZOO.TTP (Zoo/ST itself)
ZOO.MAN (Zoo documentation)
2. an archive containing the complete source as described in the file
README.NOW, plus the Atari ST-specific README.ST2, ATARI.C & ATARI2.C
and all the files listed above.
3. Thanks to Rahul Dhesi, FIZ.TTP and ZOO.TTP may be distributed
separately (although anybody probably needs the documentation).
Enjoy! (That's what I do...)
NOTE
Zoo archives can also be listed and extracted with the program Booz
("Barebones Ooz"), also by Rahul Dhesi.
TIP
A very nice-looking graphical shell (a la ARCSH for ARC), called ZooBoy and
written by Ernst Blok, is available in the Public Domain. It will be/is
distributed via comp.binaries.atari.st. If you don't use a command-line
shell, use this program to pass commands to Zoo: it has a very nice
user-interface. Highly recommended!
Daan* / . .
__ /
( / / /
(__/ / / (Daan Josephus Jitta)
/ /
__/ __/
old-fashioned: modern:
-------------- -------
Bos en Lommerweg 10 ii UUCP: ...!hp4nl!neabbs!daanjj OR daanjj@neabbs
NL-1055 EB Amsterdam Fido: 2:280/1 -- daan jitta
Holland Fax: (+31) 020-763706 -- daan jitta
Tel. (+31) 020-820521 Telex: 12969, NEABS NL, attn: daan jitta